mongodb new ObjectId 함수 사용하여 미리 ID 생성하는 법
**MongoDB의 ObjectId
**는 Node.js 환경에서 직접 생성할 수 있습니다. MongoDB 드라이버 또는 ODM (예: Mongoose)을 사용하면 쉽게 생성할 수 있습니다.
✅ 1. MongoDB Native Driver 사용 시
npm install mongodb
const { ObjectId } = require('mongodb');
const newId = new ObjectId();
console.log(newId.toString()); // e.g. '64b95f6744f9e38f9c9a1a79'
👉 설명:
-
new ObjectId()
는 새로운 12-byte ObjectId를 생성합니다. -
이 ID는 다음과 같은 구성입니다:
-
4바이트: 현재 Unix timestamp (초 단위)
-
5바이트: 랜덤 값
-
3바이트: 증가하는 카운터
-
✅ 2. Mongoose 사용 시
npm install mongoose
const mongoose = require('mongoose');
const newId = new mongoose.Types.ObjectId();
console.log(newId.toHexString());
✅ 3. ObjectId를 특정 문자열로 생성하고 싶을 때
const { ObjectId } = require('mongodb');
const fromString = new ObjectId('64b95f6744f9e38f9c9a1a79'); // 유효한 24자리 hex string
console.log(fromString instanceof ObjectId); // true
📌 유용한 팁
목적 | 코드 |
---|---|
새 ObjectId 생성 | new ObjectId() |
문자열로부터 생성 | new ObjectId('...') |
ObjectId 유효성 체크 | ObjectId.isValid(str) |
문자열로 변환 | objectId.toHexString() |
필요하다면 ObjectId
를 기반으로 타임스탬프 추출하는 방법이나, 특정 시간 기준 ObjectId 생성하는 팁도 알려드릴 수 있습니다.